0. input values¶

In [1]:
import df_generation
day?: 9/11
time?: 15:00
code?: 1156054000
truncation coeff?(0 ~ 1): 0.4

1.0 stay data¶

In [2]:
df=df_generation.df

1.1 stay data VIS(2D)¶

In [3]:
import pydeck as pdk
In [4]:
layer = pdk.Layer(
    'PolygonLayer', # 사용할 Layer 타입
    df, # 시각화에 쓰일 데이터프레임
    get_polygon='coordinates', # geometry 정보를 담고있는 컬럼 이름
    get_fill_color='[255, 255*(1-nor_pop), 255*(1-nor_pop)]', ## or nor_pop_density # 각 데이터 별 rgb 또는 rgba 값 (0~255)
    get_line_color='[0, 0, 0]', # 각 데이터 별 rgb 또는 rgba 값 (0~255) [경계선]
    get_line_width=50, # 경계선 굵기
    pickable=True, # 지도와 interactive 한 동작 on
    auto_highlight=True # 마우스 오버(hover) 시 박스 출력
)

# Set the viewport location
center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

#마우스 오버시 툴팁 columns 출력
tooltip = {
    "text": "행정지: {name} \n행정동코드: {code} \n인구: {pop}"    
}

# Render
r = pdk.Deck(layers=[layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[4]:

1.2 stay data VIS(3D)¶

In [5]:
layer = pdk.Layer(
    'PolygonLayer', # 사용할 Layer 타입
    df, # 시각화에 쓰일 데이터프레임
    get_polygon='coordinates', # geometry 정보를 담고있는 컬럼 이름
    get_fill_color='[255, 255*(1-nor_pop), 255*(1-nor_pop)]', ## or nor_pop_density # 각 데이터 별 rgb 또는 rgba 값 (0~255)
    get_line_color='[0, 0, 0]',
    pickable=True, # 지도와 interactive 한 동작 on
    auto_highlight=True, # 마우스 오버(hover) 시 박스 출력
    extruded= True, #3D plot
    get_elevation='nor_pop', ## or nor_pop_density #elevation할 column 
    elevation_scale=3000, #elevation scale
    wireframe=True #경계선 표시
)

view_state.bearing=15 #시점 좌우 각도
view_state.pitch=45 #시점 상하 각도

tooltip = {
    "text": "행정지: {name} \n행정동코드: {code} \n인구: {pop}"    
}

r = pdk.Deck(layers=[layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[5]:

2.0 od data¶

In [6]:
df_in=df_generation.df_in
df_out=df_generation.df_out
df_diff=df_generation.df_diff

2.1 od in VIS(2D)¶

In [7]:
layer = pdk.Layer(# od in data Line layer
    'LineLayer',
    df_in, # od in dataframe
    get_source_position='[from_lon, from_lat]', #from position
    get_target_position='[to_lon, to_lat]', #to position
    get_width ='10*nor_pop', ## or trunc_nor_pop
    get_color='[255*nor_pop, 0, 0]',
    pickable=True, # interactive map
    auto_highlight=True, #mouse over
    highlight_color=[255, 255, 0] #mouse over color
)

layerP = pdk.Layer( #배경 행정구 그림
    'PolygonLayer', 
    df,
    get_polygon='coordinates',
    get_fill_color='[255, 255, 255]',
    get_line_color='[0, 0, 0]',
    get_line_width=100,
    opacity=0.2,
)

center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

tooltip = {
    "text": "from: {from} \nto: {to} \npop: {pop}"    
}

r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[7]:

2.1 od out VIS(2D)¶

In [8]:
layer = pdk.Layer(
    'LineLayer',
    df_out,
    get_source_position='[from_lon, from_lat]',
    get_target_position='[to_lon, to_lat]',
    get_width ='10*nor_pop', ## or trunc_nor_pop
    get_color='[0, 0, 255*nor_pop]',
    pickable=True,
    auto_highlight=True,
    highlight_color=[255, 255, 0]
)

center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

tooltip = {
    "text": "from: {from} \nto: {to} \npop: {pop}"    
}

r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[8]:

2.1 od diff VIS(2D)¶

In [9]:
layer = pdk.Layer(
    'LineLayer',
    df_diff,
    get_source_position='[from_lon, from_lat]',
    get_target_position='[to_lon, to_lat]',
    get_width ='15*abs_trunc_nor_pop', ## or abs_trunc_nor_pop 
    get_color='[123+122*nor_pop, 0, 123-122*(nor_pop)]', #차이의 절댓값에 굵기 비례, 차이가 양수일때 red 음수일때 blue
    pickable=True,
    auto_highlight=True,
    highlight_color=[255, 255, 0]
)

center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

tooltip = {
    "text": "from: {from} \nto: {to} \npop: {pop}"    
}

r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[9]:

2.2 od in VIS(3D)¶

In [10]:
layer = pdk.Layer(
    'ArcLayer',
    df_in,
    get_source_position='[from_lon, from_lat]',
    get_target_position='[to_lon, to_lat]',
    get_width ='10*nor_pop', ## or trunc_nor_pop
    get_source_color='[0, 0, 0]', #출발 rgb
    get_target_color='[255*nor_pop, 0, 0]', #도착 rgb
    pickable=True,
    auto_highlight=True,
    highlight_color=[255, 255, 0]
)

center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

view_state.bearing = 15
view_state.pitch = 45

tooltip = {
    "text": "from: {from} \nto: {to} \npop: {pop}"    
}

r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[10]:

2.2 od out VIS(3D)¶

In [11]:
layer = pdk.Layer(
    'ArcLayer',
    df_out,
    get_source_position='[from_lon, from_lat]',
    get_target_position='[to_lon, to_lat]',
    get_width ='10*nor_pop', ## or trunc_nor_pop
    get_source_color='[0, 0, 0]',
    get_target_color='[0, 0, 255*nor_pop]',
    pickable=True,
    auto_highlight=True,
    highlight_color=[255, 255, 0]
)

center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

view_state.bearing = 15
view_state.pitch = 45

tooltip = {
    "text": "from: {from} \nto: {to} \npop: {pop}"    
}

r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[11]:

2.2 od diff VIS(3D)¶

In [12]:
layer = pdk.Layer(
    'ArcLayer',
    df_diff,
    get_source_position='[from_lon, from_lat]',
    get_target_position='[to_lon, to_lat]',
    get_width ='15*abs_trunc_nor_pop', ## or abs_trunc_nor_pop
    get_source_color='[0, 0, 123-122*nor_pop]',
    get_target_color='[123+122*nor_pop, 0, 0]',
    pickable=True,
    auto_highlight=True,
    highlight_color=[255, 255, 0]
)

center = [126.986, 37.565]
view_state = pdk.ViewState(
    longitude=center[0],
    latitude=center[1],
    zoom=10)

view_state.bearing = 15
view_state.pitch = 45

tooltip = {
    "text": "from: {from} \nto: {to} \npop: {pop}"    
}

r = pdk.Deck(layers=[layerP,layer], initial_view_state=view_state, tooltip=tooltip)
r.show()
Out[12]:
In [ ]: